$(function(){
    $.ajaxSetup({
        beforeSend: function(){
            $('submit').attr('disabled',true);
            $('#ajax-ldr').show();            
        },
        error: function(){
            alert('Um erro ocorreu e a tarefa não pode ser completada!');
            $('#ajax-ldr').fadeOut();            
        }
    })
    $('#dialogHistoria').dialog({
        autoOpen: false,
        modal: true,
        dialogClass: 'info',
        width: 700,
        height: 600,
        title: 'Historia'
    });
    $('#dialogAddAnexo').dialog({
        minWidth: 400,
        autoOpen: false,
        modal: true,
        dialogClass: 'info',
        width: 400,
        height: 'auto',
        title: 'Anexo'
    });
    $('#dialogAddChamada').dialog({
        minWidth: 300,
        autoOpen: false,
        modal: true,
        dialogClass: 'info',
        width: 300,
        height: 'auto',
        title: 'Chamada'
    });
    $('#tabs').tabs();

    function limpaDadosHistoria(){
        $('#frmHistoria #id').val('');
        $('#frmHistoria #nome').val('');
        $('#frmHistoria #importancia').val('');
        $('#frmHistoria #solicitante').val('');
        $('#frmHistoria #estimativaInicial').val('');
        $('#frmHistoria #comoDemonstrar').val('');
        $('#frmHistoria #notas').val('');
        $('#frmHistoria #categoria').val('');
        $('#frmHistoria #comptec').val('')
        $('#frmHistoria #compbanco').val('')
        $('#frmHistoria #compprog').val('')
        $('#frmHistoria #compajax').val('')
        $('#frmHistoria #backlog').val('');
        $('#frmHistoria .error').remove();
        $('#dialogHistoria').dialog('open');
    }
    $('#linkNovaHistoria').click(function(){
        limpaDadosHistoria();
        $('#frmHistoria #submit').val('Criar');
        $('#dialogHistoria').dialog('open');
        return false;
    })
    function editaHistoria(e){
        limpaDadosHistoria();
        $('#frmHistoria #submit').val('Atualizar');
        var aux = eval('('+$(e).attr('data-historia')+')');
        $('#frmHistoria #id').val(aux.id);
        $('#frmHistoria #nome').val(aux.nome);
        $('#frmHistoria #importancia').val(aux.importancia);
        $('#frmHistoria #solicitante').val(aux.solicitante);
        $('#frmHistoria #estimativaInicial').val(aux.estimativaInicial);
        $('#frmHistoria #comoDemonstrar').val(aux.comoDemonstrar);
        $('#frmHistoria #notas').val(aux.notas);
        $('#frmHistoria #categoria').val(aux.categoria.id);
        if (aux.compTec) {
            $('#frmHistoria #comptec').attr('checked',true);
            $('#frmHistoria input[type=hidden] #comptec').val(1);            
        }
        if (aux.compBanco) {
            $('#frmHistoria #compbanco').attr('checked',true);
            $('#frmHistoria #compbanco').prev().val(1);            
        }
        if (aux.compProg) {
            $('#frmHistoria #compprog').attr('checked',true);
            $('#frmHistoria #compprog').prev().val(1);            
        }
        if (aux.compAjax) {
            $('#frmHistoria #compajax').attr('checked',true);
            $('#frmHistoria #compajax').prev().val(1);            
        }
        $('#frmHistoria #backlog').val(aux.backlog.id);
        
        $('#dialogHistoria').dialog('open');
    //alert($(this).data('data-historia'));
    //$('#nome').val()
    }
    $('.editaHistoria').click(function(){
        editaHistoria(this);
        return false;
    })
    
    
    function showErrors(form,errors){
        $.each(errors, function(i,v){
            var aux = '';
            var valor = '';
            $.each(v, function(j,k){
                valor+='<li>'+k+'</li>'
            })
            valor = "<div class='error'>"+valor+'</div>';
            aux = '#'+form+' #'+i+'-element';
            $(aux+' .error').remove();
            $(aux).append(valor);
        })
    };
    
    $('#frmHistoria #submit').click(function(){
        $(this).attr('disabled',true);
        var id = $('#frmHistoria #id').val();
        var end = '';
        if (id==''){
            end = "/historias/criar";
        }
        else {
            end = "/historias/editar"
        }
        $.ajax({
            url: end,
            type: 'POST',
            data: $('#frmHistoria :not(input[type=checkbox])').serialize(),
            //            beforeSend: function(){
            //              $('#ajax-ldr').show();  
            //            },
            success: function(ret){
                $('#ajax-ldr').hide();
                if (ret.status){
                    var aux = ret.historia;
                    if ($('#frmHistoria #id').val()!='') {
                        //$('#tr_'+$('#frmHistoria #id').val()+' td').tr('data-historia',aux);
                        $('#tr_'+$('#frmHistoria #id').val()+' span').remove();
                        $('#tr_'+$('#frmHistoria #id').val())
                        .append($('<span>').attr('class','span-1')
                            .append($('<a>').attr('data-historia',aux)
                                .attr('href','/historias/editar/id/'+$('#frmHistoria #id').val())
                                .click(function(){
                                    editaHistoria(this);
                                    return false;
                                })
                                .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-pencil ui-corner-all')
                                    .attr('obs','Alterar esta Historia'))
                                )
                            )
                        .append($('<span>').attr('class','span-1')
                            .append($('<a>').attr('href','#').attr('hist',$('#frmHistoria #id').val()).click(function(){
                                mostraHistoria(this);
                                return false;
                            })
                            .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-transferthick-e-w ui-corner-all')
                                .attr('obs','Movimentar esta Historia'))
                            )
                        )
                        .append($('<span>').attr('class','span-1')
                            .append($('<a>').attr('href','/tasks/nova/id/'+$('#frmHistoria #id').val())
                            .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-check ui-corner-all')
                                .attr('obs','Criar tarefas para esta história'))
                            )
                        )
                        .append($('<span>').attr('class','span-10').text($('#frmHistoria #nome').val()))
                        .append($('<span>').attr('class','span-1').text($('#frmHistoria #importancia').val()))
                        .append($('<span>').attr('class','span-1').text($('#frmHistoria #estimativaInicial').val()))
                        .append($('<span>').attr('class','span-4').text($('#frmHistoria #categoria option:selected').text()))
                        .append($('<span>').attr('class','span-8').text($('#frmHistoria #solicitante').val()))
                        .append($('<span>').attr('class','span-3').text('Agora'))
                        .append($('<span>').attr('class','span-3').text('Agora')); 
                        $('#como_'+$('#frmHistoria #id').val()).html($('#frmHistoria #comoDemonstrar').val());
                        $('#nota_'+$('#frmHistoria #id').val()).html($('#frmHistoria #notas').val());
                    }else {
                        aux = eval('('+aux+')');
                        $('#grid').append(
                            $('<span>').attr('class','span-34 compacta-media linha lista')
                            .append($('<span>').attr('id','tr_'+aux.id)
                                .append($('<span>').attr('class','span-1')
                                    .append($('<a>').attr('data-historia',aux)
                                        .attr('href','/historias/editar/id/'+$('#frmHistoria #id').val())
                                        .click(function(){
                                            editaHistoria(this);
                                            return false;
                                        })
                                        .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-pencil ui-corner-all')
                                            .attr('obs','Alterar esta Historia'))
                                    )
                                )
                                .append($('<span>').attr('class','span-1')
                                    .append($('<a>').attr('href','#')
                                        .attr('hist',aux.id)
                                        .click(function(){
                                            mostraHistoria(this);
                                            return false;
                                        })
                                        .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-transferthick-e-w ui-corner-all')
                                            .attr('obs','Movimentar esta Historia'))
                                    )
                                )
                                .append($('<span>').attr('class','span-1')
                                    .append($('<a>').attr('href','/tasks/nova/id/'+aux.id)
                                        .attr('hist',aux.id)
                                        .append($('<span>').attr('class','tips ui-widget-content ui-icon ui-icon-check ui-corner-all')
                                            .attr('obs','Criar Tarefas para esta Historia'))
                                    )
                                )
                            .append($('<span>').attr('class','span-10').text($('#frmHistoria #nome').val()))
                            .append($('<span>').attr('class','span-1').text($('#frmHistoria #importancia').val()))
                            .append($('<span>').attr('class','span-1').text($('#frmHistoria #estimativaInicial').val()))
                            .append($('<span>').attr('class','span-4').text($('#frmHistoria #categoria option:selected').text()))
                            .append($('<span>').attr('class','span-8').text($('#frmHistoria #solicitante').val()))
                            .append($('<span>').attr('class','span-3').text('Agora'))
                            .append($('<span>').attr('class','span-3').text('Agora'))
                            )
                            .append($('<span>').attr('class','span-33 escondida').attr('id','esc_'+aux.id)
                                               .attr('style','background-color: #fafafa; display:none; padding: 8px;')
                                .append($('<span>').attr('class','span-32')
                                    .append($('<span>').attr('class','span-15 colborder')
                                        .append($('<h3>').html('Como Demonstrar'))
                                        .append($('<p>').html(aux.comoDemonstrar).attr('id','como_'+aux.id))
                                     )
                                    .append($('<span>').attr('class','span-15 last')
                                        .append($('<h3>').html('Notas'))
                                        .append($('<p>').html('anotações').attr('id','nota_'+aux.id))
                                     )
                                )
                                .append($('<hr>'))
                                .append($('<span>').attr('class','span-32')
                                    .append($('<span>').attr('class','span-15 colborder')
                                        .append($('<span>').attr('id','cha_'+aux.id)
                                            .append($('<h3>').html('Chamadas'))
                                        )
                                        .append($('<hr>').attr('class','space'))
                                        .append($('<a>').attr('href','/historias/addchamada/id/'+aux.id)
                                                        .attr('class','addchamada').attr('hist',aux.id).text('Adicionar Chamada')
                                                        .click(function(){ addChamada(this); return false;}) 
                                        )
                                    )
                                    .append($('<span>').attr('class','span-15 last')
                                        .append($('<span>').attr('class','span-14').attr('id','ane_'+aux.id)
                                            .append($('<h3>').html('Anexos'))
                                        )
                                        .append($('<hr>').attr('class','space'))
                                        .append($('<a>').attr('href','/historias/addanexo/id/'+aux.id)
                                                        .attr('class','addanexo').attr('hist',aux.id).text('Adicionar Anexo')
                                                        .click(function(){ addAnexo(this); return false;}) 
                                        )
                                                        
                                    )                                    
                                )
                            )
                        );
                    }
                    limpaDadosHistoria();
                    $('#dialogHistoria').dialog('close');

                } else {
                    //$('#dialogHistoria').html(ret.errors);
                    showErrors('frmHistoria',ret.errors);
                }
            },
            error:function(){
                $('#ajax-ldr').fadeOut();
            }
        })
        $(this).attr('disabled',false);
        return false;
    })    
    $('input[type=checkbox]').change(function(){
        var id = $(this).attr('id');
        if ($(this).is(':checked')){
            $(this).prev().val(1);
        } else {
            $(this).prev().val(0);
        }
    });
    function mostraHistoria(e){
        var id = '#esc_'+$(e).attr('hist');
        $(id).toggle();
    }
    function addChamada(e){
        $('#frmaddchamada #historiaid').val($(e).attr('hist'));
        $('#dialogAddChamada').dialog('open');
    }
    function addAnexo(e){
        $('#frmaddanexo #id').val($(e).attr('hist'));
        $('#dialogAddAnexo').dialog('open');
    }
    
    $('.mostrar').click(function(){
        mostraHistoria(this);
        return false;
    })
    $('.addanexo').click(function(){
        addAnexo(this);
        return false;
    })
    $('.addchamada').click(function(){
        addChamada(this);
        return false;
    })
    function completou(e,q,file,response){
        var aux = new String;
        if ($('#files').val()==''){
            aux = escape(file.name);
        }else{
            aux = $('#files').val()+','+escape(file.name);
        }
        $('#files').val(aux);
        $('#frmaddanexo #anexos')
        .append(
            $('<div>').attr('class','span-10')
            .append($('<span>').attr('class','span-1 ui-widget-content ui-icon ui-icon-document ui-corner-all'))
            .append($('<span>').attr('class','span-8 quiet').text(escape(file.name)))
            );
    };
    $('#arquivo').uploadify({
        'uploader'  : '/js/lib/uploadify/uploadify.swf',
        'script'    : '/js/lib/uploadify/uploadify.php',
        'cancelImg' : '/js/lib/uploadify/cancel.png',
        'auto'      : true,
        'folder'    : '/uploads',
        'multi'     : true,
        onComplete  : completou
    });
    $('#frmaddanexo #submit').click(function(){        
        $.ajax({
            url: '/historias/addanexo',
            type: 'POST',
            data: $('#frmaddanexo').serialize(),
            //            beforeSend: function(){
            //              $('#ajax-ldr').show();  
            //            },
            success: function(ret){
                $('#ajax-ldr').hide();
                if (ret.status){
                    var aux = ret.files;
                    $.each(aux,function(i,v){
                        $('#ane_'+v.historiaid)
                        .append($('<span>').attr('class','span-3')
                            .append($('<a>').text(v.nomeOriginal).attr('href',v.link))
                            );
                    })
                    $('#frmaddanexo #files').val('');
                    $('#frmaddanexo #id').val('');
                    $('#frmaddanexo #anexos').html('');
                    $('#dialogAddAnexo').dialog('close');

                } else {
                    //$('#dialogHistoria').html(ret.errors);
                    showErrors('frmaddanexo',ret.errors);
                }
            },
            error:function(){
                $('#ajax-ldr').fadeOut();
            }
        })
        return false;
    })
    $('#frmaddchamada #submit').click(function(){
        $.ajax({
            url: '/historias/addchamada',
            type: 'POST',
            data: $('#frmaddchamada').serialize(),
            //            beforeSend: function(){
            //              $('#ajax-ldr').show();  
            //            },
            success: function(ret){
                $('#ajax-ldr').hide();
                if (ret.status){
                    var aux = ret.chamada;
                    $('#cha_'+aux.historiaid)
                    .append($('<span>').attr('class','span-3')
                        .append($('<a>').text(aux.chamada).attr('href','/chamadas/editar/id/'+aux.chamada))
                        );
                    $('#frmaddchamada #chamadaid').val('');
                    $('#frmaddchamada #historiaid').val('');
                    $('#dialogAddChamada').dialog('close');

                } else {
                    //$('#dialogHistoria').html(ret.errors);
                    showErrors('frmaddchamada',ret.errors);
                }
            },
            error:function(){
                $('#ajax-ldr').fadeOut();
            }
        })
        return false;
    })
})